package com.luofan.mapper;

import com.luofan.entity.po.Collect;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.luofan.entity.po.CollectUser;
import com.luofan.entity.vo.CollectVO;
import com.luofan.entity.vo.TeacherCollectVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 档案收集任务表 Mapper 接口
 * </p>
 *
 * @author 
 * @since 2025-03-26
 */
@Mapper
public interface CollectMapper extends BaseMapper<Collect> {

    //教研室主任 发布档案收集任务
    int saveCollect(Collect collect);

    //根据教研室id和学期id获取所有对应的档案收集任务
    List<CollectVO> listCollectBySectionIdAndTermId(@Param("sectionId") Long sectionId,
                                                    @Param("termId") Long termId);

    //根据collectId获取collect_user信息
    List<CollectUser> listCollectCompletion(@Param("collectId") Long collectId);

    //根据教师id获取collect_user表信息
    List<CollectUser> listByUserId(@Param("userId") Long userId);

    //根据收集任务id和学期id获取档案收集任务信息
    TeacherCollectVO getCollectByIdAndTermId(@Param("collectId") Long collectId,
                                             @Param("termId") Long termId,
                                             @Param("userId") Long userId);

    //根据档案收集任务id获取最晚完成时间
    LocalDateTime getCompletionTimeById(Long collectId);
}
